package com.happy.unitconvert.service;

import com.happy.unitconvert.model.dto.ExchangeRateDataWrapper;
import reactor.core.publisher.Mono;

import java.math.BigDecimal;
import java.util.Map;

/**
 * 扩展汇率服务接口
 * 提供包含数据来源信息的汇率查询和转换功能
 *
 * @author Happy
 */
public interface ExchangeRateServiceExtended {
    /**
     * 获取指定基础货币的所有汇率（包含数据来源信息，支持强制更新）
     *
     * @param baseCurrency  基础货币代码（如USD, EUR等）
     * @param isForceUpdate 是否强制从网络更新数据
     * @return 包含所有汇率的包装对象
     */
    Mono<ExchangeRateDataWrapper<Map<String, BigDecimal>>> getExchangeRatesWithSource(String baseCurrency,
                                                                                      boolean isForceUpdate);

}
